package customer.service;

import java.sql.SQLException;
import java.util.ArrayList;

import customer.dao.CustomerDAO;
import customer.domain.Customer;
import customer.exception.DuplicatedResidentNumberException;
import customer.exception.RequiredInputException;

//CustomerManageArrayList 역할
//고객관리와 관련된 비즈니스 로직 처리 - 싱글톤

public class CustomerService {
	private CustomerDAO dao;//생성자에서 대입
	
	private static CustomerService instance = null;
	
	private CustomerService(){
		dao = CustomerDAO.getInstance();
	}
	public static CustomerService getInstance(){
		
		if(instance == null) instance = new CustomerService();
		return instance;
	}
	
	//1명의 고객을 등록하는 메소드
	public void registerCustomer(Customer customer) throws Exception{
		//1. 등록데이터에 주민번호가 없으면 예외 발생
		String residentNO = customer.getResidentNumber();
		if(residentNO == null || residentNO.length() == 0){
			throw new RequiredInputException("주민번호는 필수 입력사항입니다.");
		}
		
		//2. 이미 등록된 주민번호면 예외를 발생
		Customer cust = dao.selectCustomerByResidentNumber(residentNO);
		if(cust != null){
			throw new DuplicatedResidentNumberException("이미 등록된 주민번호 입니다");
		}
		
		//3. 데이터를 DB에 추가
		dao.insertCustomer(customer);
	}
	
	//
	public ArrayList<Customer> getCustomerList() throws SQLException{
		
	}
}
